﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.OleDb;
using DTO;
using DAO;
using BUS;

namespace QL_xxx
{
	/// <summary>
	/// Interaction logic for ThemChiTietPhongSanPham.xaml
	/// </summary>
	public partial class ThemChiTietPhongSanPham : Window
	{
        private List<SanPhamDTO> listSP;
        private PhongDTO phong;
		public ThemChiTietPhongSanPham(int _maPhong)
		{
			this.InitializeComponent();

            phong = PhongBUS.LayDSPhong(_maPhong)[0];
		}

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            listSP = SanPhamBUS.LayDSSanPham();
            if (listSP.Count > 0 && listSP != null)
            {
                foreach (var item in listSP)
                {
                    cbxSanPham.Items.Add(item.TenSanPham);
                }
                cbxSanPham.SelectedIndex = 0;
            }
            errorSL.Text = "Bạn phải điền số lượng vào đây!";
            errorSL.Foreground = Brushes.Red;

            btnThem.IsEnabled = false;
        }

        private void errorSL_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorSL.Text, "OK") == 0)
            {
                btnThem.IsEnabled = true;
            }
            else
            {
                btnThem.IsEnabled = false;
            }
        }

        private void txtSL_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (txtSL.Text.Trim().Length == 0)
            {
                errorSL.Text = "Bạn phải điền số lượng vào đây!";
                errorSL.Foreground = Brushes.Red;
            }
            else
            {
                int n = 0;
                if (!int.TryParse(txtSL.Text, out n) || (int.TryParse(txtSL.Text, out n) && int.Parse(txtSL.Text) <= 0))
                {
                    errorSL.Text = "Số lượng phải là số nguyên và lớn hơn 0!";
                    errorSL.Foreground = Brushes.Red;
                }
                else
                {
                    errorSL.Text = "OK";
                    errorSL.Foreground = Brushes.Green;
                }
            }
        }

        private void btnThoat_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (MessageBoxResult.Yes == MessageBox.Show("Bạn có chắc muốn thoát, thông tin sẽ không được lưu!", "Thông báo.", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No))
                e.Cancel = false;
            else
                e.Cancel = true;
        }
        private void btnThem_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SanPhamDTO sp = SanPhamBUS.LayDSSanPham(-1, cbxSanPham.Text)[0];
                PhieuThuePhongDTO phieuThue = PhieuThuePhongBUS.LayDSPhieuThuePhong(phong.TrangThai)[0];
                ChiTietPhong_SanPhamDTO ct = new ChiTietPhong_SanPhamDTO();
                ct.MaSanPham = sp.MaSanPham;
                ct.SoLuong = int.Parse(txtSL.Text);
                if (ct.SoLuong > sp.SoLuongTrongKho)
                {
                    MessageBox.Show("Số lượng trong kho không đủ!");
                    return;
                }
                ct.MaPhieuThuePhong = phieuThue.MaPhieuThuePhong;
                int kq = ChiTietPhong_SanPhamBUS.ThemChiTietPhong_SanPham(ct);
                if (kq == ChiTietPhong_SanPhamBUS.ThanhCong)// them thanh cong, giam so luong san pham trong kho
                {
                    sp.SoLuongTrongKho -= ct.SoLuong;
                    if (SanPhamBUS.SuaThongTinSanPham(sp) == SanPhamBUS.thanhCong)
                    {
                        MessageBox.Show("Xong");
                        txtSL.Text = "";
                    }
                    else
                    {
                        MessageBox.Show("Lỗi cập nhật sản phẩm trong kho");
                    }
                }
                else
                    if (kq == ChiTietPhong_SanPhamBUS.ThatBai)
                    {
                        MessageBox.Show("Lỗi chưa xác định, vui lòng liên hệ nhà cung cấp!", "Thông báo");
                    }
            }
            catch(NullReferenceException )
            {
                MessageBox.Show("Sản phẩm trống!","Lỗi",MessageBoxButton.OK,MessageBoxImage.Error);
            }
        }

       

      
	}
}